package cn.shujuhai.cms.domain;

import cn.shujuhai.common.domain.BaseDomain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @Author: zhangDeZhong
 * @Date: 2024/12/5 12:01
 * @Description: sys_template模板表的实体类
 **/
@EqualsAndHashCode(callSuper = true)
@TableName(value = "sys_template")
@Data
public class SysTemplate extends BaseDomain {
    /**
     * 模板ID
     */
    @TableId(type = IdType.AUTO)
    private Long templateId;

    /**
     * 模版名
     */
    @NotBlank(message = "模板名不能为空")
    @Size(max = 10, message = "模板名长度不能超过10个字符")
    @Pattern(regexp = "^[a-zA-Z\\u4e00-\\u9fa5][a-zA-Z0-9\\u4e00-\\u9fa5]*$", message = "模板名称只能包含汉字、字母和数字，且不能以数字开头")
    private String templateName;

    /**
     * 模版路径
     */
    @NotBlank(message = "模板路径不能为空")
    @Size(max = 30, message = "模板路径长度不能超过30个字符")
    @Pattern(regexp = "^[a-zA-Z0-9/]+\\.html$", message = "模板路径只能包含字母、数字和斜杠（/），且必须以 .html 结尾")
    private String templateUrl;

    /**
     * 类别ID
     */
    @NotNull(message = "类别ID不能为空")
    private Long type;

    /**
     * 文章内容
     */
    private byte[] content;

//    /**
//     * 文章内容
//     */
//    @TableField(exist = false)
//    private String base64Content;

    /**
     * 模板类型名称
     */
    @TableField(exist = false)
    private String typeName;
}

